The Internet has become an increasingly popular manner by which to convey information such as multimedia clips. There are generally at least two ways for a user to download such clips from a remote server to be played on his or her (client) computer. First, the user can initiate a download, such that when a clip has finished being downloaded, it can be played on the computer. However, this is disadvantageous, because many clips are relatively large in file size, which means that the user may have to wait a long time before he or she can play a given clip.
A second way is known as streaming. With streaming technology, the user's computer requests that the server begin sending a stream of data thereto. As the stream of data is being received, it is immediately played on the user's computer, with a predetermined buffer allowance so that if there is a delay in transmission, playing of the multimedia clip is not interrupted. Streaming is advantageous over completely downloading a clip before beginning playback, because the user is able to play the clip immediately as it is being received, without the delay in waiting for the downloading of the clip to be completed.
However, a disadvantage with streaming as per its most common transmission mechanism, known as HyperText Transport Protocol, or HTTP, is that the server is usually able only to respond to a relatively simple “get stream” request sent by a client computer. Thus, a user's computer issues a “get stream” request to the server, and in response, the server sends the desired stream to the user's computer. This is disadvantageous because the server is able only to send the requested stream, and after the requested stream has finished being transmitted, must usually wait for another “get stream” request before sending another stream to the user's computer.
For example, a user may desire to have an episode of a television program transmitted via streaming. Such an episode, however, may have multiple streams: a first stream of the introduction of the program, followed by one or more streams related to advertisements, followed by a stream of a first part of the program, followed by more streams related to advertisements, etc. In such a situation, the server is generally not able to indicate to the client computer that a given stream is to end and a new stream is to begin. That is, the server is generally not able to switch streams while streaming multimedia clips to a client computer.
For these and other reasons, there is a need for the present invention.